/*
 * FrecuenciaDeTerminos.cpp
 *
 *  Created on: 08/11/2013
 *      Author: Miguel
 */

#include "FrecuenciaDeTerminos.h"

FrecuenciaDeTerminos::FrecuenciaDeTerminos(const String& nombre, int block_size):
	OTConFrecuencia(block_size){
	this->nombre = nombre;
}

FrecuenciaDeTerminos::~FrecuenciaDeTerminos() {}

String FrecuenciaDeTerminos::crearArchivoConFrecuencias(const String& ordenado) {
	SecuentialFile<IDs> OT_ORD(256);

	OTConFrecuencia.create("FREC"+nombre);

	OT_ORD.open(ordenado);
	IDs idActual, idSiguiente;
	BigInt frec=1;

	OT_ORD.next(idActual);
	while ( OT_ORD.next(idSiguiente) ) {
		if( idActual == idSiguiente )
			frec++;
		else {
			idActual.setFrecuencia(frec);
			OTConFrecuencia.add(idActual);
			idActual = idSiguiente;
			frec = 1;
		}
	}
	idActual.setFrecuencia(frec);
	OTConFrecuencia.add(idActual);

	OT_ORD.close();
	OTConFrecuencia.close();

	return "FREC"+nombre;
}

void FrecuenciaDeTerminos::eliminar() {
	String _dat = "FREC"+nombre; _dat+=".dat";
	String _fsm = "FREC"+nombre; _fsm+=".fsm";
	remove(_dat.c_str());
	remove(_fsm.c_str());
}


